   * Introduction
   * Installation
   * A guided tour of CelestNav
        o Setup
        o Shooting a star
        o Building a fix
        o Sight reduction/HO 229
   * How to register your demo version
   * Inner workings

Introduction

Features/sources

CelestNav is a full-featured celestial navigation solution for the PalmOS
family of handheld computers. It includes a perpetual nautical almanac for
the Sun, navigational planets, and navigational stars, as well as an
electronic version of H.O. 229.

CelestNav guides you through the steps of computing a celestial fix. It
records your sextant observations with sight times; applies the appropriate
corrections for height of eye, atmospheric refraction, backsights, and
sextant errors; combines multiple sights into a celestial fix; computes your
position automatically; and maintains a dead-reckoning position from your
last known fix.

CelestNav had its start on a 3500 mile tall ship voyage. In 1998 I sailed on
Soren Larsen from Vanuatu to New Caledonia, then to Sydney, and on to
Auckland. I spent much of the trip practicing with my sextant, and found
that the most frustrating part was the long delay between shooting my sight
and finding out what the answer should have been--calculating by hand on
paper just took too long. CelestNav is intended to take the drudgery out of
celestial navigation and to encourage sailors everywhere to stay current in
this important skill.

Requirements

CelestNav runs on any PalmOS handheld with version 3.0 or higher of the
operating system. This includes the entire Palm III/V/VII families, Visors,
and Symbol, TRG, and IBM units.

Learning celestial navigation

CelestNav is not designed to teach you how to navigate. We suggest you take
a class from a qualified instructor in your area.

Reference books, nautical almanacs, sight tables, and tutorials for
celestial navigation are available for purchase at the Mobile Geographics
web store, http://www.mobilegeographics.com/navbooks.html. The prudent
mariner will not rely on electronic devices. Have the books on board, and
know how to use them.

Installation

Installation is easy. Two files are required. The first is CelestNav.prc,
the actual program. The second is MathLib.prc, a library written by Rick
Huebner. MathLib.prc is used by many PalmOS add-on applications; you might
already have installed it. If MathLib.prc is already installed, there is no
need to install it again.

Drag CelestNav.prc, and (if necessary) MathLib.prc into the "Install
Handheld Files" or "Install Files" window of your Palm Desktop Software.
Then perform a HotSync operation to transfer the files from your desktop
computer to your handheld.

After the HotSync, youre ready to go. Tap the CelestNav icon on your
handheld to start the program.

A guided tour of CelestNav

Now well go through the different parts of CelestNav, and see it compute a
fix. Well use example 5-3 taken from Leonard Grays excellent book One
Hundred Problems in Celestial Navigation, available for purchase from the
Mobile Geographics web store,
http://www.mobilegeographics.com/navbooks.html.

Setup

The first time you run CelestNav, youll see the Status Page.

At the beginning of a voyage, and periodically through the voyage, you
should recheck two configuration settings.

Time zone

Celestial navigation depends on knowing the time quite exactly. You need to
tell CelestNav exactly what time it is. Tap the "time" button in the Status
Page to switch to the Handheld Clock page, or choose "Time" from the "Setup"
menu.

Device time, at the top of the page, is the time shown on your handhelds
internal clock. You can change that with the Prefs program included on your
handheld. CelestNav does not modify your handhelds internal clock.
CelestNav assumes that your handhelds clock is set to approximate ships
time or local time.

All clocks gain or lose time, and your handhelds clock is no exception. If
your handheld has drifted a few seconds fast or slow, enter that as a "watch
error". Tap the "Fast" or "Slow" pushbutton, and enter the watch error in
seconds. You will see your "Local time" updated immediately.

Finally, you need to tell CelestNav what time zone you are in, relative to
UTC (sometimes called by its old name GMT). Enter the difference between
your local time and UTC, expressed in minutes. Tap the "-" pushbutton if you
are east of Greenwich, or the "+" if you are west of Greenwich. For the east
coast of the USA, during the winter (not observing daylight savings time),
enter "300" minutes and tap the "+" pushbutton. CelestNav will display the
computed UTC time, as well as the longitude that corresponds to the UTC
offset that you entered.

Height of eye

When you make a sextant observation, you must know how far above sea level
you were. A difference of a few feet can make a large difference in your
computed location.

CelestNav lets you store multiple observing locations. You can edit these by
choosing "Observer height of eye" from the "Setup" menu. You might just need
one location. But if you sometimes shoot from the bridge wing, sometimes
from the signal bridge, and sometimes from the flight deck, or if you sail
on more than one boat, it can be handy to have multiple locations defined.

To create a new location, tap the "New" button. Enter a short text
description, and then the height of eye. Tap "Use this location" to tell
CelestNav that this is where you are now; CelestNav will use that height of
eye for future sextant sights, but will not change existing sights.

To delete the currently-visible observation location, use the Delete entry
from the Observer menu. If there are sextant sights in the sight database
that were made from this location, you will not be able to delete it.

For practice, create a new entry. Enter "Leonard Gray chap 5" for the
description, and 2.44 meters (8 feet) as the height of eye. Tap "Use this
location". Now tap the "Status" button to return to the Status Page.

Shooting a star

Now were ready to enter some sextant observations. Tap the "New sight"
button on the status page.

Index error

Index error is the error in your sextant reading. You can determine your own
sextants index error by observing the horizon. When the horizon is lined up
with itself, your sextant should read 0.0. The actual reading of your
sextant is the index error.

For this example we will use an index error of 1.0. Tap the selector box
next to "Index error:", and youll bring up CelestNavs angle entry form.

You can use the angle entry form to enter angles as decimal degrees
(36.2341), degrees and decimal minutes (36 14.043), or degrees, minutes,
and seconds (36 14 3). Tap the "DDD", "DMM", or "DMS" pushbutton to
change modes.

Use either the numeric buttons or Graffiti to enter the numeric values in
the proper fields. Use the "  " button to cycle through the degrees,
minutes, and seconds fields. The backspace button (left arrow) deletes one
character at a time. The "000" button truncates the current field and sets
all fields to the right equal to zeroits handy for quickly turning 36 14
3 into exactly 36. The Revert button restores the value that you had when
you started, but leaves you in the form. "Cancel" restores the original
value and exits. "Done" saves your changes and exits.

You will always see a pair of pushbuttons to change the sign of the angle.
They will be "-" and "+" for angles and bearings, "W" and "E" for
longitudes, or "N" and "S" for latitudes.

Enter 0 1.0 for the index error, and then tap "Done".

Once you enter an index error, it will persist and be used for all future
sights until you enter a new index error. Check your index error each time
you use your sextant.

Entering observations

We will go, step-by-step, through one entry. We observed the star Regulus on
December 18, 1993 at 17:20:35 UTC, azimuth 007, sextant reading 3734.3.

Timing the sight

When you use CelestNav at sea, youll want to let your handheld be your
stopwatch. Suppose youre working alone, and that it takes you 3 seconds to
put down your sextant and pick up your handheld after making an observation.
Tap the "delay" popup trigger (just to the left of the "Now" button. Choose
"3 second delay". Youll make your observation, say to yourself "now", and
count "thousand-one, thousand-two, thousand-three". As you say "three", tap
the "Now" button. When you tap the "Now" button, CelestNav will record a
time that was 3 seconds in the past.

If you have an assistant, choose "No delay" and have your assistant tap
"Now" when you say (out loud!) "now!".

When you use CelestNav to practice, you will be entering times manually. For
this example, the sight was made at 17:20:35 UTC on December 18, 1993. Tap
the time selector (just above the "delay" trigger) and youll bring up the
Date and Time Entry screen.

Tap the "Date" selector trigger to bring up the usual PalmOS date selector.
Use it to enter the date of your observation (December 18, 1993).

Tap each part of the time in turn to set hours, minutes, and seconds. Tap
the up and down arrows to adjust the values. The "00" button zeros the
minutes and seconds; the "00" button zeros only the seconds. "Now" sets the
date and time to the current date and time. "Revert", "Cancel", and "Done"
work as they did in the Angle Entry Screen. Enter 17:20:35 for the time, and
tap "Done".

Where in the sky?

Tap the "Sextant" selector trigger to bring up another angle entry form,
this one for the sextant reading. Enter 3734.3 for the sextant reading.

You may, if you wish, enter an observed azimuth value. This information is
not used currently, but a future release of CelestNav will allow you to
match azimuth and height of an unknown body with the nautical almanac values
so that you can identify the body. To enter an azimuth, tap the "Azimuth"
checkbox and then enter a value into the selector trigger that appears. For
this body, use 007 for the azimuth.

Which body?

There are two popup lists that you will use to enter the name of a celestial
body. The first one is always visible, just below the "Azimuth" checkbox.
Tap it, and choose "Selected star:", since Regulus is a star. You would use
just this popup if you had taken a sight of a planet or the sun.

When you choose "Selected star:" from the upper popup, the lower one
appears. It contains only the names of stars. Tap it, and choose "Regulus".

Sextant sight variations

Tap the "Extras" button to see the special cases that CelestNav can handle.

When practicing with problems from a book, you might have occasion to enter
samples that already have all sextant corrections made, or that have already
corrected for dip/height of eye. Check those items on the form if they
apply.

A backsight is a sextant observation made to the opposite horizon. Turn your
back on the body, and shoot it over your shoulder (this is useful if you
cant see the horizon below the body itself). Check "backsight" if you made
your observation this way.

CelestNav assumes standard atmospheric conditions of 10 Celsius, 1010
millibars. If you have observed other conditions, enter those here for a
more accurate correction.

A "noon/meridian passage" sight is made when a celestial body (usually the
Sun) reaches its highest point in the sky. This sight gives you a latitude
value only, but does not require accurate timekeeping. At present CelestNav
allows you to record that a sight was made at local apparent noon, but still
treats the sight as a timed sight.

Adding it all up

From the "Sights" menu, choose "Show corrections". Youll see an overview of
all of the steps CelestNav takes to adjust your sextant reading to a
corrected height above horizon.

Knowing where to look

Tap the "Find" button to switch to the "Almanac data" page. In the upper
left corner, enter your dead-reckoning position using the angle entry
screen. In this example your DR is 4017 South, 15806.0 East. CelestNav
shows you the predicted azimuth and elevation of Regulus, as well as the
sidereal hour angle, declination, local hour angle, and Greenwich hour angle
of Regulus and of Aries.

Tap the "Sight edit" button to enter the rest of the example.

The rest of the round

Tap "New" on the "Sextant sight" page to create a new sight entry. This one
is for the star Spica, observed December 18, 1993 at 17:22:04 UTC, with a
sextant reading of 3425.8.

Here are the sextant observations you made (including the first two, which
we have already entered). Create new entries for the rest of them.

       December 18, 1993 Celestial
              Observations

  Body      GMT    Hs (sextant reading)
 Regulus 17:20:35  3734.3
 Spica   17:22:04  3425.8
 Procyon 17:23:44  3531.2
 Canops  17:25:16  5309.9
 Jupiter 17:26:50  2542.5
 Sirius  17:29:01  4246.9

Note that Jupiter's entry is a bit different, since it is a planet and not a
star.

Now tap the "Sights" button to see all of your sextant sights.

This page lists date and time of observation, sextant reading in degrees and
tenths, and the name of the body. The most recent fix you entered (Sirius,
at 17:29:01) should be highlighted. If not, tap its entry once to highlight
it. Then tap the "Build fix" button.

Building a fix

AP, course/speed

In this example, the last fix we had was at 0950 on December 18, 1993, at
4017 South, 15806 East. Since then we have been on course 090 true, at
a speed of 7.5 knots.

Enter the last known position as "AP/DR", using the two Angle Entry Forms
that will pop up when you tap the selector triggers. Enter the time of that
fix as "time of DR", using a Date and Time Entry form. Enter the speed to
the left of "knots" as a normal PalmOS field; use Graffiti for this entry.
Enter the course in the lower right using an Angle Entry Form.

Time of fix

Most of the time youll want the time of the fix to be the time of the last
celestial observation. Check the "(auto) time" box for this. Uncheck it if
you want to set the time of fix manually; use the selector trigger next to
"(auto) time" to do so.

Adding sights

The last sextant sight you entered has its box checked. Check the boxes next
to each of the other 5 new celestial observations. As you do this, youll
see a pause as CelestNav computes the nautical almanac information for the
sight. Your updated fix is displayed at the top of the screen. An "A" to the
left of a sight means that the almanac information has been computed and
saved.

The final answer

When all 6 celestial observations have been added to the fix, CelestNav
computes your position at 17:29, December 18, 1993 as S 4017.4 E
15916.5.

Starting a DR

At sea, you can use the fix you just computed as the basis for a
continuously updated DR position. Choose "Start DR" from the Fixes menu.
Your DR position is displayed on the Status Page, as long as the time of
your DR is fairly recent. To test this feature using our example, youll
have to set your handhelds clock back to December 1993.

Tap "Celestial fixes" from the Status Page, and you'll see your
newly-created fix in the database.

Sight reduction/HO 229

CelestNav includes a page which performs the same calculations that are
tabulated in Publication H.O. 229. From the "Almanac data" page, tap the
"Sight reduc" button, or from anywhere choose "Sight reduction table" from
the "Nav" menu.

An Example

Switch to the "Almanac data" page.

At 20:45:47 UTC, June 21 2000, your dead reckoning position is N 31 56.1',
W 14 56.8'. Enter those values in the two DR fields.

You want to observe the star Antares. CelestNav's perpetual nautical almanac
tells you that the uncorrected height should be 20 01.0'. Tap the "Sight
reduc" button to switch to the HO229 page.

After making your observation and correcting for index error, dip, and
atmospheric conditions, you calculate a height Ho of 20 19.4'. Enter that
value for Ho.

Check the "Calc from GHA?" box to enter your GHA and have CelestNav compute
your LHA. Antares's GHA and declination have been pre-entered for you from
the Nautical Almanac page. Since your DR latitude is north and the star's
declination is south, CelestNav displays "contrary". Your LHA, as computed
by CelestNav, is 319 00.0'.

Check the "Round AP" box This will display an AP (assumed position) of W 15
26.1', N 32 00.0'. AP is rounded to give a whole integer latitude and a
whole integer LHA.

CelestNav displays a value of 19 42.5' for Hc, and azimuth of 141, with an
intercept of 36.9 nautical miles "toward".

To plot this LOP on your paper chart, begin from the displayed AP position.
Draw a line from your AP on bearing 141. At a point on that line 36.9 nm
from the AP, place a dot, the intercept point. Draw a perpendicular to your
first line (the azimuth line), through the intercept point. Your position
was somewhere along that line.

Now turn to volume 3 of HO 229, page 85 (the page that lists LHA of 319,
contrary latitude/declination names). Look under the column for latitude
32. Interpolation between the values for declination 26 and 27 gives an Hc
of 19 42.1', and both Z and azimuth of 141.4.

How to register your demo version

CelestNav uses a registration code based on your HotSync name. You can find
the HotSync name in the upper right corner of the screen in your Palm
HotSync application, or in the upper left corner of CelestNav's "Register"
page. Go to the "Register" page by choosing "Register" from the Setup menu.

Purchase CelestNav through PalmGearHQ or Handango. When you buy it, you will
need to provide your HotSync name. You may also provide the RegCode, which
appears in the middle of the screen. The RegCode is helpful if your name
uses international characters; it is simply a different way of recording
your HotSync name.

   * [PalmGear HQ]  Online with realtime fulfillment, by phone (817)
     640-6558, or by fax (817) 640-6614.
   * [Handango]  Online with realtime fulfillment

When you buy CelestNav, you will receive a temporary unlock key immediately,
and a permanent key in 1 or 2 business days. The temporary key will work for
60 days. The permanent key will not expire.

Feel free to beam CelestNav to your friends. CelestNav will function as a
demonstration version for 30 days, just as if they had downloaded CelestNav
from a PalmOS software vendor.

Inner workings

CelestNav would not have been possible without the previous work of many
people.

The algorithms for the nautical almanac calculations for the Sun and planets
are taken from Jean Meeus's book Astronomical Algorithms. The star positions
are given by a modified version of the NOVAS vector astrometry package, from
the U.S. Naval Observatory.

The algorithms for sight reduction and fix computation come from the 2000
edition of the Nautical Almanac.

The project would have been a lost cause without Rick Huebner's MathLib.

CelestNav was developed on MacOS using the Metrowerks CodeWarrior
development environment for PalmOS. It is written entirely in C.

Finally, a heartfelt thanks to everybody I sailed with on the Soren Larsen.
